# 执行简单测试
from langchain_core.prompts import ChatPromptTemplate
print(ChatPromptTemplate.from_template("Hello 欢迎来到小滴课堂-AI大模型开发课程 {title}!").format(title=",干就完了"))
# 应输出: Human: Hello 欢迎来到小滴课堂-AI大模型开发课程 ,干就完了!
# RAG示例代码
from langchain.text_splitter import CharacterTextSplitter
from langchain_community.vectorstores import FAISS
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain.chains import RetrievalQA
from langchain_community.llms import OpenAI

# 示例文档
documents = [
    "小滴课堂是一个在线教育平台",
    "专注于AI、Java、Python等技术培训", 
    "提供优质的编程教学内容",
    "帮助学员提升技术能力"
]

# 文本分割
text_splitter = CharacterTextSplitter(
    separator="\n",
    chunk_size=100,
    chunk_overlap=20
)
texts = text_splitter.create_documents(documents)

# 向量化存储
embeddings = HuggingFaceEmbeddings()
vectorstore = FAISS.from_documents(texts, embeddings)

# 创建检索器
retriever = vectorstore.as_retriever()

# 创建QA链
llm = OpenAI()
qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=retriever
)

# 示例查询
query = "小滴课堂是做什么的?"
result = qa_chain.invoke({"query": query})
print(f"问题: {query}")
print(f"回答: {result['result']}")

# 使用LangChain的Agent
from langchain.agents import AgentExecutor, create_react_agent
from langchain.tools import Tool

# 定义工具

def search_web(query):
    # 模拟网络搜索
    return f"搜索结果: {query}"

# 创建工具
search_tool = Tool(
    name="搜索网络",
    description="搜索网络上的信息",
    func=search_web
)

# 创建Agent
agent = create_react_agent([search_tool], llm, verbose=True)

# 执行Agent
result = agent.invoke({"input": "小滴课堂的地址是什么?"})
print(f"问题: 小滴课堂的地址是什么?")
print(f"回答: {result['output']}")

# 使用LangChain的Agent
from langchain.agents import AgentExecutor, create_react_agent
from langchain.tools import Tool

# 定义工具
